package com.kurtphpr.sistema.produto;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;

import com.kurtphpr.sistema.marca.MarcaRN;

@ManagedBean(name = "pesquisarProduto")
@RequestScoped
public class PesquisarProdutoBean {

	private List<Produto> lista = null;

	private String parametroFiltro;
	
	private String filtroSelecionado;

	private List<SelectItem> filtrosSelect = null;

	public void setLista(List<Produto> lista) {
		this.lista = lista;
	}

	public List<Produto> getLista() {
		ProdutoRN produtoRN = new ProdutoRN();

		if (lista == null) {
			lista = produtoRN.listar();
		}
		
		return lista;
	}

	public String pesquisar() {
		if (filtroSelecionado.equals("Nome")) {
			ProdutoRN produtoRN = new ProdutoRN();
			lista = produtoRN.filtrarPorNome(parametroFiltro);
		}
		
		if (filtroSelecionado.equals("Marca")) {
			MarcaRN marcaRN = new MarcaRN();
			Integer idMarca = marcaRN.pesquisarPorNome(parametroFiltro).getId();
			ProdutoRN produtoRN = new ProdutoRN();
			lista = produtoRN.filtrarPorMarca(idMarca);
		}
		
		return null;
	}

	public List<SelectItem> getFiltrosSelect() {
		if (this.filtrosSelect == null) {
			filtrosSelect = new ArrayList<SelectItem>();

			List<String> listaFiltros = new ArrayList<String>();
			listaFiltros.add("Nome");
			listaFiltros.add("Marca");

			SelectItem item;
			for (String filtroLista : listaFiltros) {

				item = new SelectItem(filtroLista, filtroLista.toString());
				filtrosSelect.add(item);
			}
		}

		return filtrosSelect;
	}

	public void setFiltrosSelect(List<SelectItem> filtrosSelect) {
		this.filtrosSelect = filtrosSelect;
	}

	public String getFiltroSelecionado() {
		return filtroSelecionado;
	}

	public void setFiltroSelecionado(String filtroSelecionado) {
		this.filtroSelecionado = filtroSelecionado;
	}

	public String getParametroFiltro() {
		return parametroFiltro;
	}

	public void setParametroFiltro(String parametroFiltro) {
		this.parametroFiltro = parametroFiltro;
	}

}
